---
title: 快速开始
sidebar:
  order: 1
---

import LastedDependency from '@/components/LastedDependency.astro';

我们将通过一个简单的 Demo 来阐述 MyBatis-Plus 的强大功能，在此之前，我们假设您已经：

- 拥有 Java 开发环境以及相应 IDE
- 熟悉 Spring Boot
- 熟悉 Maven 或 Gradle

---

现有一张 User 表，其表结构如下：

| id | name   | age | email              |
|----|--------|-----|--------------------|
| 1  | Jone   | 18  | test1@baomidou.com |
| 2  | Jack   | 20  | test2@baomidou.com |
| 3  | Tom    | 28  | test3@baomidou.com |
| 4  | Sandy  | 21  | test4@baomidou.com |
| 5  | Billie | 24  | test5@baomidou.com |

其对应的数据库 Schema 脚本如下：

```sql
<!-- schema-h2.sql -->

DROP TABLE IF EXISTS `user`;

CREATE TABLE `user`
(
    id BIGINT NOT NULL COMMENT '主键ID',
    name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名',
    age INT NULL DEFAULT NULL COMMENT '年龄',
    email VARCHAR(50) NULL DEFAULT NULL COMMENT '邮箱',
    PRIMARY KEY (id)
);
```

其对应的数据库 Data 脚本如下：

```sql
<!-- data-h2.sql -->

DELETE FROM `user`;

INSERT INTO `user` (id, name, age, email) VALUES
(1, 'Jone', 18, 'test1@baomidou.com'),
(2, 'Jack', 20, 'test2@baomidou.com'),
(3, 'Tom', 28, 'test3@baomidou.com'),
(4, 'Sandy', 21, 'test4@baomidou.com'),
(5, 'Billie', 24, 'test5@baomidou.com');
```

---

:::tip[你知道吗？]
如果从零开始用 MyBatis-Plus 来实现该表的增删改查我们需要做什么呢？
:::

## 初始化工程

创建一个空的 Spring Boot 工程，加入 H2 数据库进行集成测试。

:::tip
点此 [Spring Initializer](https://start.spring.io/#!type=maven-project&language=java&platformVersion=3.1.8&packaging=jar&jvmVersion=17&groupId=com.example&artifactId=demo&name=demo&description=Demo%20project%20for%20Spring%20Boot&packageName=com.example.demo&dependencies=h2) 可快速初始化一个 Spring Boot 工程
:::

## 添加依赖

引入 MyBatis-Plus Starter 依赖

### Spring Boot2

<LastedDependency groupId="com.baomidou" artifactId="mybatis-plus-boot-starter" />

### Spring Boot3

<LastedDependency groupId="com.baomidou" artifactId="mybatis-plus-spring-boot3-starter" />


## 配置

在 `application.yml` 配置文件中添加 H2 数据库的相关配置：

```yaml
<!-- application.yml -->

# DataSource Config
spring:
  datasource:
    driver-class-name: org.h2.Driver
    username: root
    password: test
  sql:
    init:
      schema-locations: classpath:db/schema-h2.sql
      data-locations: classpath:db/data-h2.sql
```

上面的配置是任何一个 Spring Boot 工程都会配置的数据库链接信息，如果您使用的是其他数据库，如 MySQL，则需要修改相应的配置信息。

在 Spring Boot 启动类中添加 `@MapperScan` 注解，扫描 Mapper 文件夹：

```java {2}
<!-- Application.java -->

@SpringBootApplication
@MapperScan("com.baomidou.mybatisplus.samples.quickstart.mapper")
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

}
```

## 编码

编写实体类 `User.java`：

```java
<!-- User.java -->

@Data
public class User {
    private Long id;
    private String name;
    private Integer age;
    private String email;
}
```

:::note
上面的代码中使用了 [Lombok](https://projectlombok.org/) 进行代码生成，如果您不习惯，请自行生成相关 Getter/Setter 方法。
:::


编写 Mapper 接口类 `UserMapper.java`：

```java
public interface UserMapper extends BaseMapper<User> {

}
```

## 开始使用

添加测试类，进行功能测试：

```java
@SpringBootTest
public class SampleTest {

    @Autowired
    private UserMapper userMapper;

    @Test
    public void testSelect() {
        System.out.println(("----- selectAll method test ------"));
        List<User> userList = userMapper.selectList(null);
        Assert.isTrue(5 == userList.size(), "");
        userList.forEach(System.out::println);
    }

}
```

:::tip
UserMapper 中的 `selectList()` 方法的参数为 MP 内置的条件封装器 `Wrapper`，所以不填写就是无任何条件
:::

控制台输出：

```txt
User(id=1, name=Jone, age=18, email=test1@baomidou.com)
User(id=2, name=Jack, age=20, email=test2@baomidou.com)
User(id=3, name=Tom, age=28, email=test3@baomidou.com)
User(id=4, name=Sandy, age=21, email=test4@baomidou.com)
User(id=5, name=Billie, age=24, email=test5@baomidou.com)
```

:::note
完整的代码示例请移步：[Spring Boot 快速启动示例](https://github.com/baomidou/mybatis-plus-samples/tree/master/mybatis-plus-sample-quickstart) | [Spring MVC 快速启动示例](https://github.com/baomidou/mybatis-plus-samples/tree/master/mybatis-plus-sample-quickstart-springmvc)
:::

## 小结

通过以上几个简单的步骤，我们就实现了 User 表的 CRUD 功能，甚至连 XML 文件都不用编写！

从以上步骤中，我们可以看到集成 MyBatis-Plus 非常的简单，只需要引入 starter 依赖，简单进行配置即可使用。

但 MyBatis-Plus 的强大远不止这些功能，想要详细了解 MyBatis-Plus 的强大功能？那就继续往下看吧！
